package eitwitter.evaluation;

import eitwitter.storage.Category;
import eitwitter.storage.Tweet;
import java.io.File;
import java.util.EnumMap;

/**
 * Interface permettant de realiser l'evaluation de la polarite d'un tweet
 * @author AH & PJ
 */
public interface Evaluation {
	
	/**
	 * Determine la categorie d'un tweet et l'ajoute au tweet
	 * @param tweet Tweet dont on veut determiner la categorie
	 */
	void computeTweetCategory(Tweet tweet);
	
	/**
	 * Etablit la matrice de confusion pour le fichier deja rempli passe en
	 * parametre.
	 * dans l'ordre : POSITIVE, NEGATIVE, NEUTRAL, IRRELEVANT
	 * @param file Fichier sur lequel determiner la matrice de confusion
	 * @return Tableau correspondant a la matrice de confusion
	 */
	EnumMap<Category, EnumMap<Category, Integer>> computeConfusionMatrix(File file);

	/**
	 * Affiche pour le fichier passe en parametre tous les tweets, avec la catégorie
	 * la societe et le contenu du tweet dans le meme ordre que le fichier en entree
	 * @param file Fichier a traiter
	 */
	void printTweetCategories(File file);
	
}
